Optimization technology provides organizations with an ability to generate effective plans and schedules. For example, a manufacturing organization may wish to have optimization technology generate a production plan for producing a product at the least cost, or generate a production plan for producing the largest number of goods in a shortest amount of time. When “components” change, such as employee availability, machine availability, etcetera, an organization may use optimization technology to create alternative plans and schedules.
Optimization technology typically utilizes an “optimization model” and an “optimization engine” to solve for an organization's “outcome objective.” The optimization model captures complex planning or scheduling problems through equations, and the optimization engine applies the optimization model to various scenarios in order to identify possible solutions based upon the outcome objective, such as minimizing cost, shortening schedule, and/or optimizing a manufacturing plant's productivity. The optimization engine may generate a tree data structure (includes nodes and branches) that correspond to the programming model. At particular nodes during the optimization process, the optimization engine may select a branching variable from multiple branching variable candidates and, as a result, proceed to branch on the selected branching variable and solve for the branching variable's child nodes.